Skip to content

ci: linux amd64 only — drop arm64 to unblock v0.2.0 release#21

Merged
shahid-io merged 1 commit into
mainfrom
ci/release-amd64-only
May 10, 2026
Merged

ci: linux amd64 only — drop arm64 to unblock v0.2.0 release#21
shahid-io merged 1 commit into
mainfrom
ci/release-amd64-only

Conversation

@shahid-io

Copy link
Copy Markdown
Owner

Why

PR #20 limited the release to Linux but kept arm64 in the matrix, with
`CC=aarch64-linux-gnu-gcc` set via a goreleaser env template:

```yaml
env:

  • CGO_ENABLED=1
    {{- if eq .Arch "arm64" -}} CC=aarch64-linux-gnu-gcc {{- end -}}
    ```

The template didn't apply per-arch — host gcc tried to assemble ARM64
instructions, fell over with:

```
gcc_arm64.S:30: Error: no such instruction: `stp x29,x30,[sp,'
gcc_arm64.S:34: Error: operand size mismatch for `mov'
```

What changes

  • `.goreleaser.yml`: drop `arm64` from goarch. Comment explains why
    and how to re-add (two separate build blocks, each with its own env).
  • `release.yml`: drop the `gcc-aarch64-linux-gnu` install step
    (no longer needed).

Trade-off

Linux arm64 users (Raspberry Pi 5, AWS Graviton boxes, ARM workstations)
won't have a pre-built binary on the GitHub Releases page. They can
`go install github.com/shahid-io/inode@latest` — works fine on arm64,
the source compiles natively against the local toolchain.

Test plan

  • `.goreleaser.yml` parses
  • CI green
  • After merge, dispatch the release workflow against v0.2.0 again — verify amd64 binary lands on the Releases page.

Previous attempt set CC=aarch64-linux-gnu-gcc via a goreleaser env
template ({{- if eq .Arch \"arm64\" -}} CC=… {{- end -}}). The template
either didn't expand or didn't apply per-arch — host gcc tried to
assemble arm64 instructions, blew up with:

  gcc_arm64.S:30: Error: no such instruction: \`stp x29,x30,[sp,'

Could fix it with two separate goreleaser build entries (one per arch,
each with its own env), but for a solo hobby project the value of arm64
Linux binaries is small — those users can \`go install\`. Drop arm64
from .goreleaser.yml goarch list and remove the cross-compiler install
from release.yml.

Re-add when someone actually asks. The pattern (split into two builds)
is documented in the comment above goarch.
@shahid-io
shahid-io merged commit f13a587 into main May 10, 2026
4 checks passed
@shahid-io
shahid-io deleted the ci/release-amd64-only branch May 10, 2026 17:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant